using System;
using Rdl;

namespace GTame.ReportParser
{

    public class CustomReportItemType
    {

        private ReportItemsTypeSingle _AltReportItem;
        private string _Bookmark;
        private CustomDataType _CustomData;
        private CustomPropertiesType _CustomProperties;
        private string _DataElementName;
        private CustomReportItemTypeDataElementOutput _DataElementOutput;
        private string _Height;
        private string _Label;
        private string _Left;
        private string _RepeatWith;
        private StyleType _Style;
        private string _Top;
        private string _Type;
        private VisibilityType _Visibility;
        private string _Width;
        private Nullable<uint> _ZIndex;
        private string nameField;

        public ReportItemsTypeSingle AltReportItem
        {
            get
            {
                if (_AltReportItem == null)
                    _AltReportItem = new ReportItemsTypeSingle();
                return _AltReportItem;
            }
            set
            {
                _AltReportItem = value;
            }
        }

        public string Bookmark
        {
            get
            {
                return _Bookmark;
            }
            set
            {
                _Bookmark = value;
            }
        }

        public CustomDataType CustomData
        {
            get
            {
                if (_CustomData == null)
                    _CustomData = new CustomDataType();
                return _CustomData;
            }
            set
            {
                _CustomData = value;
            }
        }

        public CustomPropertiesType CustomProperties
        {
            get
            {
                if (_CustomProperties == null)
                    _CustomProperties = new CustomPropertiesType();
                return _CustomProperties;
            }
            set
            {
                _CustomProperties = value;
            }
        }

        public string DataElementName
        {
            get
            {
                return _DataElementName;
            }
            set
            {
                _DataElementName = value;
            }
        }

        public CustomReportItemTypeDataElementOutput DataElementOutput
        {
            get
            {
                return _DataElementOutput;
            }
            set
            {
                _DataElementOutput = value;
            }
        }

        public string Height
        {
            get
            {
                return _Height;
            }
            set
            {
                _Height = value;
            }
        }

        public string Label
        {
            get
            {
                return _Label;
            }
            set
            {
                _Label = value;
            }
        }

        public string Left
        {
            get
            {
                return _Left;
            }
            set
            {
                _Left = value;
            }
        }

        public string Name
        {
            get
            {
                return nameField;
            }
            set
            {
                nameField = value;
            }
        }

        public string RepeatWith
        {
            get
            {
                return _RepeatWith;
            }
            set
            {
                _RepeatWith = value;
            }
        }

        public StyleType Style
        {
            get
            {
                if (_Style == null)
                    _Style = new StyleType();
                return _Style;
            }
            set
            {
                _Style = value;
            }
        }

        public string Top
        {
            get
            {
                return _Top;
            }
            set
            {
                _Top = value;
            }
        }

        public string Type
        {
            get
            {
                return _Type;
            }
            set
            {
                _Type = value;
            }
        }

        public VisibilityType Visibility
        {
            get
            {
                if (_Visibility == null)
                    _Visibility = new VisibilityType();
                return _Visibility;
            }
            set
            {
                _Visibility = value;
            }
        }

        public string Width
        {
            get
            {
                return _Width;
            }
            set
            {
                _Width = value;
            }
        }

        public Nullable<uint> ZIndex
        {
            get
            {
                return _ZIndex;
            }
            set
            {
                _ZIndex = value;
            }
        }

        public CustomReportItemType()
        {
            _ZIndex = new Nullable<uint>[]();
        }

        public CustomReportItemType Write()
        {
            // trial
            return null;
        }

    } // class CustomReportItemType

}

